namespace WP7Contrib.Services.BingMaps.Model
{
    using Common;

    public class RouteWarning : BaseModel, ICloneable<RouteWarning>
    {
        private string severity;
        private string text;
        private string warningType;

        public string Severity
        {
            get
            {
                return this.severity;
            }
            set
            {
                this.SetPropertyAndNotify(ref this.severity, value, () => this.Severity);
            }
        }

        public string Text
        {
            get
            {
                return this.text;
            }
            set
            {
                this.SetPropertyAndNotify(ref this.text, value, () => this.Text);
            }
        }

        public string WarningType
        {
            get
            {
                return this.warningType;
            }
            set
            {
                this.SetPropertyAndNotify(ref this.warningType, value, () => this.WarningType);
            }
        }

        public RouteWarning ShallowClone()
        {
            return this.DeepClone();
        }

        public RouteWarning DeepClone()
        {
            var warning = new RouteWarning
            {
                Severity = this.severity,
                Text = this.text,
                WarningType = this.warningType
            };

            return warning;
        }
    }
}